package yxy.cherry.game.base.message;

import com.google.protobuf.MessageLite;

import yxy.cherry.game.base.message.annotation.MessageSource;

public interface IMessageEmitter {
	/**
	 * 向playerId玩家发送消息
	 * 
	 * @param uid     玩家id
	 * @param message 消息
	 */
	public boolean send(int uid, MessageLite message);

	/**
	 * 向playerCode玩家发送消息
	 * 
	 * @param uid     玩家id
	 * @param message 消息
	 */
	public boolean send(String pcode, MessageLite message);

	/**
	 * 向来源发送消息
	 * 
	 * @param source  消息源
	 * @param message 消息
	 */
	public boolean send(MessageSource source, MessageLite message);

	/** 发送Control消息 */
	public boolean control(String tag, long source, long destination, int proto, MessageLite message);
}
